#define  _CRT_SECURE_NO_WARNINGS 1
#include"game.h"

// 显示游戏菜单
void menu()
{
    printf("**********************************\n");
    printf("**********  扫雷游戏  ************\n");
    printf("**********************************\n");
    printf("**********  1. play  *************\n");
    printf("**********  0. exit  *************\n");
    printf("**********************************\n");
    printf("游戏说明：输入坐标 x y 来排查雷，* 表示未排查\n");
}

// 开始游戏
void game()
{
    char mine[ROWs][COLs] = { 0 };// 存储雷的信息，'1'表示有雷
    char show[ROWs][COLs] = { 0 };// 显示给玩家的信息，'*'表示未排查

    // 初始化棋盘
    initboard(mine, ROWs, COLs, '0');// 初始化为全'0'
    initboard(show, ROWs, COLs, '*');// 初始化为全'*'

    // 布置雷
    setmine(mine, ROW, COL);

    // 显示棋盘
    displayboard(show, ROW, COL);

    // 排查雷
    findmine(mine, show, ROW, COL);
}

int main()
{
    int input = 0;
    // 设置随机数种子，确保每次游戏雷的位置不同
    srand((unsigned int)time(NULL));

    do
    {
        menu();// 显示菜单
        printf("请选择:>");
        // 输入验证
        while (scanf("%d", &input) != 1)
        {
            printf("输入错误，请输入数字:>");
            // 清空输入缓冲区
            while (getchar() != '\n');
        }
        
        switch (input)
        {
        case 1:
            printf("开始游戏！\n");
            game();// 开始游戏
            break;
        case 0:
            printf("感谢游玩，退出游戏！\n");
            break;
        default:
            printf("选择错误，请重新选择！\n");
            break;
        }
    } while (input);

    return 0;
}
